package visual;

import java.util.ArrayList;

import objetos.*;

/**
 * Clase encargada de ver la informacion de los puentes, recorre todos los puentes 
 * y va mostrando la información de los mismos, como: sentido, coches sobre el puente,
 * coches esperando...
 * 
 * La clase trabaja sobre copias de los datos originales, para ello se crean una serie
 * de variables auxiliares, que almacenaran las copias.
 * 
 * @author Carlos Verdejo - Saul Carranza
 *
 */
public class visualizacion {
	
	//Variable auxiliar, almacena el puente sobre el que se va a mostrar información
	private Puente auxiliar; 
	//Lista auxiliar que almacena los puentes creados en el programa
	ArrayList<Puente> Puentes;
	
	/**
	 * Constructor
	 * @param PuentesPasados ArrayList de los puentes originales del programa.
	 */
	public visualizacion(ArrayList<Puente> PuentesPasados){
		Puentes = PuentesPasados;
	}
	
	/**
	 * Recorre toda la lista de puentes y va llamando al metodo visualizaPuente()
	 * para mostrar la información de cada uno de la lista, de forma individual.
	 */
	public void visualizar (){
		for(int i=0;i<Puentes.size();i++){
			auxiliar=Puentes.get(i);
			visualizaPuente();
			System.out.println("\n");
		}
	}
	
	/**
	 * Imprime por pantalla las caracteristicas del puente previamente seleccionado
	 * en el metodo superior, muestra el nombre del puente, el estado del mismo,
	 * los coches que se encuentran sobre el mismo, el sentido que tiene, y los coches
	 * que esperan a cada lado del puente. 
	 */
	private void visualizaPuente(){
		System.out.println("\t\t\t-"+auxiliar.getNombre()+"-");
		System.out.println("\t=======================================");
		if(auxiliar.getActivo()){
			System.out.print("  "+auxiliar.getSentIzquierda()+"\t\t\t");
			if(auxiliar.getSentido().toString().compareTo("Izquierda")==0){
				System.out.print("<= " + auxiliar.verColaInterna() +" <=");
			}else{
				System.out.print("=> " + auxiliar.verColaInterna() +" =>");
			}
			System.out.print("\t\t\t  " + auxiliar.getSentDerecha());
		}else{
			System.out.print("\t\t\t\t Inactivo");
		}
		System.out.println("");
		System.out.println("\t=======================================");
	}


}
